$(function () {
    $("#queryClasszApplicationformButton").click(queryClasszApplicationform);
    fillPageDataListTable();
    fillClasszSelect();

    layui.use(['laydate'], function () {
        var laydate = layui.laydate;
        //日期时间选择器
        laydate.render({
            elem: '#beginClasszApplicationFormDate',
            type: 'datetime'
        });
        laydate.render({
            elem: '#endClasszApplicationFormDate',
            type: 'datetime'
        });
    });
})

function fillClasszSelect() {
    $.post("/classzapplicationform/queryClasszListByOrganizationId?t=" + new Date().getTime(), function (data) {
        var jsonObject = JSON.parse(data);
        if (jsonObject.responseCode == 500) {
            layer.msg(jsonObject.message);
        }
        if (jsonObject.responseCode == 501) {
            layer.msg("系统级异常：" + jsonObject.message);
        }
        if (jsonObject.responseCode == 200) {
            var classzEntityList = jsonObject.responseData;
            for (var i = 0; i < classzEntityList.length; i++) {
                var eachClassz = classzEntityList[i];

                var newOption = $("<option></option>");
                $(newOption).text(eachClassz.classzName);
                $(newOption).val(eachClassz.id);

                $("#queryClasszApplicationformTable select[name='applicationformClasszId']").append(newOption);
            }

            layui.use('form', function () {
                var form = layui.form;
                form.render();
            });
        }
    });
}

function queryClasszApplicationform() {
    $("#queryClasszApplicationformTable input[type='hidden'][name='gotoPageHidden']").val("1")
    fillPageDataListTable();
}

function fillPageDataListTable() {
    var studentName = $("#queryClasszApplicationformTable :text[name='studentName']").val();
    var applicationformClasszId = $("#queryClasszApplicationformTable select[name='applicationformClasszId'] option:selected").val();
    var beginClasszApplicationFormDate = $("#queryClasszApplicationformTable :text[name='beginClasszApplicationFormDate']").val();
    var endClasszApplicationFormDate = $("#queryClasszApplicationformTable :text[name='endClasszApplicationFormDate']").val();
    var gotoPage = $("#queryClasszApplicationformTable input[type='hidden'][name='gotoPageHidden']").val();

    $.post("/classzapplicationform/classzApplicationFormPage?t=" + new Date().getTime(), {
        "studentName": studentName,
        "applicationformClasszId": applicationformClasszId,
        "beginClasszApplicationFormDate": beginClasszApplicationFormDate,
        "endClasszApplicationFormDate": endClasszApplicationFormDate,
        "gotoPage": gotoPage,
    }, function (data) {
        var jsonObject = JSON.parse(data);
        if (jsonObject.responseCode == 500) {
            layer.msg(jsonObject.message);
        }
        if (jsonObject.responseCode == 501) {
            layer.msg("系统级异常：" + jsonObject.message);
        }
        if (jsonObject.responseCode == 200) {
            {
                var pageDataListTable = $("#pageDataListTable");
                $(pageDataListTable).find("tbody").empty();
                var queryPageDataList = jsonObject.responseData.queryPageDataList;
                if (queryPageDataList.length == 0 && gotoPage > 1) {//实现当前页删光显示前一页
                    $("#queryClasszApplicationformTable input[type='hidden'][name='gotoPageHidden']").val(gotoPage - 1);
                    fillPageDataListTable();
                }

                if (queryPageDataList.length == 0) {
                    $(pageDataListTable).append(createTableEmpty());
                } else {
                    for (var i = 0; i < queryPageDataList.length; i++) {
                        var newTR = createEachClasszApplicationFormTR(queryPageDataList[i]);
                        $(pageDataListTable).find("tbody").append(newTR);
                    }
                }
            }

            {
                var queryGotoMap = jsonObject.responseData.queryGotoMap;
                var getAllPageRecordCount = queryGotoMap.getAllPageRecordCount;
                var getCurrentPageRecordCount = queryGotoMap.getCurrentPageRecordCount;
                var pageSize = queryGotoMap.pageSize;
                layui.use(['laypage'], function () {
                    var laypage = layui.laypage;
                    //分页导航自定义样式
                    laypage.render({
                        elem: 'pageComponent',
                        count: getAllPageRecordCount,
                        limit: pageSize,
                        groups: 20,
                        theme: '#1E9FFF',
                        curr: gotoPage,
                        jump: function (obj, first) {
                            if (!first) {
                                var clickGotoPage = obj.curr;//获取当前点击页码
                                $("#queryClasszApplicationformTable input[type='hidden'][name='gotoPageHidden']").val(clickGotoPage);
                                fillPageDataListTable();
                            }
                        }
                    });
                });

                $("#gotoPageTable button[name='getAllPageRecordCount']").text("所有页的总记录数：" + getAllPageRecordCount);
                $("#gotoPageTable button[name='getCurrentPageRecordCount']").text("当前页的记录数：" + getCurrentPageRecordCount);
            }
        }
    });
}

function createEachClasszApplicationFormTR(eachClasszApplicationForm) {
    var newTR = $("<tr></tr>");

    var id_td = $("<td></td>");
    $(id_td).css("width", "150px");
    $(id_td).text(eachClasszApplicationForm.classzapplicationformId);

    var username_td = $("<td></td>");
    $(username_td).text(eachClasszApplicationForm.username);
    var classzname_td = $("<td></td>");
    $(classzname_td).text(eachClasszApplicationForm.classzname);
    var organizationName_td = $("<td></td>");
    $(organizationName_td).text(eachClasszApplicationForm.organizationName);
    var applicationformDate_td = $("<td></td>");
    $(applicationformDate_td).text(eachClasszApplicationForm.applicationformDate);

    var operate_td = $("<td></td>");
    $(operate_td).css("width", "150px");
    var passOrganizationApplicationFormA = $(`<button class="layui-btn layui-btn-sm layui-btn-normal">通过</button>`);
    $(passOrganizationApplicationFormA).attr("classzApplicationFormId", eachClasszApplicationForm.classzapplicationformId);
    $(passOrganizationApplicationFormA).click(passClasszApplicationForm);
    var refuseOrganizationApplicationFormA = $(`<button class="layui-btn layui-btn-sm layui-btn-danger">拒绝</button>`);
    $(refuseOrganizationApplicationFormA).attr("classzApplicationFormId", eachClasszApplicationForm.classzapplicationformId);
    $(refuseOrganizationApplicationFormA).click(refuseClasszApplicationForm);
    $(operate_td).append(passOrganizationApplicationFormA);
    $(operate_td).append(refuseOrganizationApplicationFormA);

    $(newTR).append(id_td);
    $(newTR).append(username_td);
    $(newTR).append(classzname_td);
    $(newTR).append(organizationName_td);
    $(newTR).append(applicationformDate_td);
    $(newTR).append(operate_td);

    return newTR;
}

function createTableEmpty() {
    var newTR = $("<tr></tr>");
    var newTD = $("<td></td>");
    $(newTD).text("列表为空！");
    $(newTD).attr("colspan", 9);
    $(newTD).css("text-align", "center");
    $(newTR).append(newTD);
    return newTR;
}

function passClasszApplicationForm() {
    var classzApplicationFormId = $(this).attr("classzApplicationFormId");
    layer.open({
        type: 0,
        content: "确认通过学生申请？",
        btn: ['通过', '关闭'],
        yes: function (index, layero) {
            $.post("/classzapplicationform/passClasszApplicationFormById?t=" + new Date().getTime(), {
                "classzApplicationFormId": classzApplicationFormId,
            }, function (data) {
                var jsonObject = JSON.parse(data);
                if (jsonObject.responseCode == 500) {
                    layer.msg(jsonObject.message);
                }
                if (jsonObject.responseCode == 501) {
                    layer.msg("系统级异常：" + jsonObject.message);
                }
                if (jsonObject.responseCode == 200) {
                    fillPageDataListTable();
                }
                layer.closeAll('dialog');
            });
        }
    });
}

function refuseClasszApplicationForm() {
    var classzApplicationFormId = $(this).attr("classzApplicationFormId");
    layer.open({
        type: 0,
        content: "确认拒绝学生申请？",
        btn: ['拒绝', '关闭'],
        yes: function (index, layero) {
            $.post("/classzapplicationform/deleteClasszApplicationFormById?t=" + new Date().getTime(), {
                "classzApplicationFormId": classzApplicationFormId,
            }, function (data) {
                var jsonObject = JSON.parse(data);
                if (jsonObject.responseCode == 500) {
                    layer.msg(jsonObject.message);
                }
                if (jsonObject.responseCode == 501) {
                    layer.msg("系统级异常：" + jsonObject.message);
                }
                if (jsonObject.responseCode == 200) {
                    fillPageDataListTable();
                }
                layer.closeAll('dialog');
            });
        }
    });
}